<!DOCTYPE html>
<html dir="ltr" mozdisallowselectionprint moznomarginboxes>
<head lang="en">

    <meta charset="utf-8">
    <title>Cron帮助</title>
    <meta name="description" content="生成器在线生成任务调度比如Quartz的Cron表达式,对Quartz Cron表达式的可视化双向解析和生成.">
    <meta name="author" content="zeyuphoenix">

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

    <!-- #CSS Links -->
    <!-- Basic Styles -->
    <link rel="stylesheet" type="text/css" media="screen" href="/static/css/bootstrap.css">
    <link rel="stylesheet" type="text/css" media="screen" href="/static/css/font-awesome.css">

    <!-- SmartAdmin Styles : Caution! DO NOT change the order -->
    <link rel="stylesheet" type="text/css" media="screen" href="/static/css/smartadmin-production-plugins.css">
    <link rel="stylesheet" type="text/css" media="screen" href="/static/css/smartadmin-production.css">
    <link rel="stylesheet" type="text/css" media="screen" href="/static/css/smartadmin-skins.css">

    <link rel="stylesheet" type="text/css" media="screen" href="/static/js/plugin/pdf/web/viewer.css">

    <!-- #FAVICONS -->
    <link rel="shortcut icon" href="/static/img/favicon/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/static/img/favicon/favicon.ico" type="image/x-icon">

    <!-- #GOOGLE FONT -->
    <link rel="stylesheet" href="/static/css/google-fonts.css?family=Open+Sans:300,400,600&subset=latin,latin-ext">

    <!-- #APP SCREEN / ICONS -->
    <!-- Specifying a Webpage Icon for Web Clip
         Ref: https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html -->
    <link rel="apple-touch-icon" href="/static/img/splash/sptouch-icon-iphone.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/static/img/splash/touch-icon-ipad.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/static/img/splash/touch-icon-iphone-retina.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/static/img/splash/touch-icon-ipad-retina.png">

    <!-- iOS web-app metas : hides Safari UI Components and Changes Status Bar Appearance -->
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">

    <!-- Startup image for web apps -->
    <link rel="apple-touch-startup-image" href="/static/img/splash/ipad-landscape.png"
          media="screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape)">
    <link rel="apple-touch-startup-image" href="/static/img/splash/ipad-portrait.png"
          media="screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait)">
    <link rel="apple-touch-startup-image" href="/static/img/splash/iphone.png"
          media="screen and (max-device-width: 320px)">

    <!-- #PLUGINS -->
    <!-- Link to Google CDN's jQuery + jQueryUI; fall back to local -->
    <script src="/static/js/libs/jquery-2.2.0.js"></script>

    <script src="/static/js/libs/jquery-ui-1.11.4.js"></script>

    <!-- IMPORTANT: APP CONFIG -->
    <script src="/static/js/app.config.js"></script>

    <!-- JS TOUCH : include this plugin for mobile drag / drop touch events-->
    <script src="/static/js/plugin/jquery-touch/jquery.ui.touch-punch.js"></script>

    <!-- BOOTSTRAP JS -->
    <script src="/static/js/bootstrap/bootstrap.js"></script>

    <!-- JARVIS WIDGETS -->
    <script src="/static/js/smartwidgets/jarvis.widget.js"></script>

    <!-- JQUERY UI + Bootstrap Slider -->
    <script src="/static/js/plugin/bootstrap-slider/bootstrap-slider.js"></script>

    <!-- browser msie issue fix -->
    <script src="/static/js/plugin/msie-fix/jquery.mb.browser.js"></script>

    <!-- FastClick: For mobile devices: you can disable this in app.js -->
    <script src="/static/js/plugin/fastclick/fastclick.js"></script>

    <!-- layer plugin -->
    <script src="/static/js/plugin/layer/layer.js"></script>

    <!-- MAIN APP JS FILE -->
    <script src="/static/js/app.js"></script>

    <!-- PDF JS FILE -->
    <script src="/static/js/plugin/pdf/web/compatibility.js"></script>
    <!-- This snippet is used in production (included from viewer.html) -->
    <link rel="resource" type="application/l10n" href="/static/js/plugin/pdf/web/locale/locale.properties"/>
    <script src="/static/js/plugin/pdf/web/l10n.js"></script>
    <script src="/static/js/plugin/pdf/build/pdf.js"></script>
    <script src="/static/js/plugin/pdf/web/debugger.js"></script>

    <!-- SCRIPTS ON PAGE EVENT -->
    <script type="text/javascript">
        /* DO NOT REMOVE : GLOBAL FUNCTIONS!
         *
         * pageSetUp(); WILL CALL THE FOLLOWING FUNCTIONS
         *
         * // activate tooltips
         * $("[rel=tooltip]").tooltip();
         *
         * // activate popovers
         * $("[rel=popover]").popover();
         *
         * // activate popovers with hover states
         * $("[rel=popover-hover]").popover({ trigger: "hover" });
         *
         * // activate inline charts
         * runAllCharts();
         *
         * // setup widgets
         * setup_widgets_desktop();
         *
         * // run form elements
         * runAllForms();
         *
         ********************************
         *
         * pageSetUp() is needed whenever you load a page.
         * It initializes and checks for all basic elements of the page
         * and makes rendering easier.
         *
         */
        pageSetUp();

        /**
         * 方法一: 定义 DEFAULT_URL， url地址为 WebROOT下面 '/soc/pdfFiles/jfinal.pdf'
         */
        // var DEFAULT_URL='jfinal.pdf';

        /**
         * 方法二: 定义 DEFAULT_URL， 发送ajax请求，返回pdf的数据
         */
        var DEFAULT_URL;
        //不知道什么原因如果后台直接将pdf的数据流发给前台，得到的是乱码，将数据转换成 Uint8Array始终不成功
        //所以就让后台将发送之前的数据流做 了base64编码发给前台，前台再解码得到的数据就不是乱码了。
        var BASE64_MARKER = ';base64,';

        //viewer.js全局变量,传入buffer
        //将buffer传给pdf.js来处理（这里使用了viewer.js, 所以需要考虑的是如何将buffer传给viewer.js来处理）
        $(document).ready(function () {
            // 遮罩
            var loadIndex = parent.layer.load(0, {shade: 0.4});
            $.ajax({
                type: "post",
                async: false,
                //ajax接收pdf数据流，注意dataType值的设置是否有错，如果不指定，jQuery将自动根据HTTP包MIME信息返回
                //responseXML或responseText.
                //通过$.ajax接收后台发给前台的buffer数据
                //contentType: "application/pdf;charset=utf-8",
                dataType: "json",
                url: "${ctx}" + "${url}",
                data: {
                    //传递参数
                    params: "${params}",
                    base64: "${base64}"
                },
                success: function (data) {
                    parent.layer.close(loadIndex);
                    //如果引入了viewer.js , 处理方法
                    //修改源码了！！！  && typeof file == 'string' viewer.js  6415
                    DEFAULT_URL = convertDataURIToBinary(data.pdfData);
                },
                error:function () {
                    parent.layer.close(loadIndex);
                }
            });
        });

        //编码转换，将pdf.js转换成pdf.js可以接收的buffer格式
        function convertDataURIToBinary(dataURI) {

            var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
            var base64 = dataURI.substring(base64Index);
            var raw = window.atob(base64);
            var rawLength = raw.length;

            //转换成pdf.js能直接解析的Uint8Array类型,见pdf.js-4068
            var array = new Uint8Array(new ArrayBuffer(rawLength));

            for (i = 0; i < rawLength; i++) {
                array[i] = raw.charCodeAt(i);
            }
            return array;
        }

    </script>

    <!--先设置全局变量DEFAULT_URL 的值，所以要后调入viewer.js -->
    <script type="text/javascript" src="/static/js/plugin/pdf/web/viewer.js"></script>

</head>
<body>
<div id="outerContainer">

    <div id="sidebarContainer">
        <div id="toolbarSidebar">
            <div class="splitToolbarButton toggled">
                <button id="viewThumbnail" class="toolbarButton group toggled" title="Show Thumbnails" tabindex="2"
                        data-l10n-id="thumbs">
                    <span data-l10n-id="thumbs_label">Thumbnails</span>
                </button>
                <button id="viewOutline" class="toolbarButton group" title="Show Document Outline" tabindex="3"
                        data-l10n-id="outline">
                    <span data-l10n-id="outline_label">Document Outline</span>
                </button>
                <button id="viewAttachments" class="toolbarButton group" title="Show Attachments" tabindex="4"
                        data-l10n-id="attachments">
                    <span data-l10n-id="attachments_label">Attachments</span>
                </button>
            </div>
        </div>
        <div id="sidebarContent">
            <div id="thumbnailView">
            </div>
            <div id="outlineView" class="hidden">
            </div>
            <div id="attachmentsView" class="hidden">
            </div>
        </div>
    </div>
    <!-- sidebarContainer -->

    <div id="mainContainer">
        <div class="findbar hidden doorHanger hiddenSmallView" id="findbar">
            <label for="findInput" class="toolbarLabel" data-l10n-id="find_label">Find:</label>
            <input id="findInput" class="toolbarField" tabindex="91">

            <div class="splitToolbarButton">
                <button class="toolbarButton findPrevious" title="" id="findPrevious" tabindex="92"
                        data-l10n-id="find_previous">
                    <span data-l10n-id="find_previous_label">Previous</span>
                </button>
                <div class="splitToolbarButtonSeparator"></div>
                <button class="toolbarButton findNext" title="" id="findNext" tabindex="93"
                        data-l10n-id="find_next">
                    <span data-l10n-id="find_next_label">Next</span>
                </button>
            </div>
            <input type="checkbox" id="findHighlightAll" class="toolbarField">
            <label for="findHighlightAll" class="toolbarLabel" tabindex="94" data-l10n-id="find_highlight">Highlight
                all</label>
            <input type="checkbox" id="findMatchCase" class="toolbarField">
            <label for="findMatchCase" class="toolbarLabel" tabindex="95" data-l10n-id="find_match_case_label">Match
                case</label>
            <span id="findMsg" class="toolbarLabel"></span>
        </div>
        <!-- findbar -->

        <div id="secondaryToolbar" class="secondaryToolbar hidden doorHangerRight">
            <div id="secondaryToolbarButtonContainer">
                <button id="secondaryPresentationMode"
                        class="secondaryToolbarButton presentationMode visibleLargeView"
                        title="Switch to Presentation Mode" tabindex="51" data-l10n-id="presentation_mode">
                    <span data-l10n-id="presentation_mode_label">Presentation Mode</span>
                </button>

                <button id="secondaryOpenFile" class="secondaryToolbarButton openFile visibleLargeView"
                        title="Open File" tabindex="52" data-l10n-id="open_file">
                    <span data-l10n-id="open_file_label">Open</span>
                </button>

                <button id="secondaryPrint" class="secondaryToolbarButton print visibleMediumView" title="Print"
                        tabindex="53" data-l10n-id="print">
                    <span data-l10n-id="print_label">Print</span>
                </button>

                <button id="secondaryDownload" class="secondaryToolbarButton download visibleMediumView"
                        title="Download" tabindex="54" data-l10n-id="download">
                    <span data-l10n-id="download_label">Download</span>
                </button>

                <a href="#" id="secondaryViewBookmark" class="secondaryToolbarButton bookmark visibleSmallView"
                   title="Current view (copy or open in new window)" tabindex="55" data-l10n-id="bookmark">
                    <span data-l10n-id="bookmark_label">Current View</span>
                </a>

                <div class="horizontalToolbarSeparator visibleLargeView"></div>

                <button id="firstPage" class="secondaryToolbarButton firstPage" title="Go to First Page"
                        tabindex="56"
                        data-l10n-id="first_page">
                    <span data-l10n-id="first_page_label">Go to First Page</span>
                </button>
                <button id="lastPage" class="secondaryToolbarButton lastPage" title="Go to Last Page" tabindex="57"
                        data-l10n-id="last_page">
                    <span data-l10n-id="last_page_label">Go to Last Page</span>
                </button>

                <div class="horizontalToolbarSeparator"></div>

                <button id="pageRotateCw" class="secondaryToolbarButton rotateCw" title="Rotate Clockwise"
                        tabindex="58"
                        data-l10n-id="page_rotate_cw">
                    <span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span>
                </button>
                <button id="pageRotateCcw" class="secondaryToolbarButton rotateCcw" title="Rotate Counterclockwise"
                        tabindex="59" data-l10n-id="page_rotate_ccw">
                    <span data-l10n-id="page_rotate_ccw_label">Rotate Counterclockwise</span>
                </button>

                <div class="horizontalToolbarSeparator"></div>

                <button id="toggleHandTool" class="secondaryToolbarButton handTool" title="Enable hand tool"
                        tabindex="60" data-l10n-id="hand_tool_enable">
                    <span data-l10n-id="hand_tool_enable_label">Enable hand tool</span>
                </button>

                <div class="horizontalToolbarSeparator"></div>

                <button id="documentProperties" class="secondaryToolbarButton documentProperties"
                        title="Document Properties…" tabindex="61" data-l10n-id="document_properties">
                    <span data-l10n-id="document_properties_label">Document Properties…</span>
                </button>
            </div>
        </div>
        <!-- secondaryToolbar -->

        <div class="toolbar">
            <div id="toolbarContainer">
                <div id="toolbarViewer">
                    <div id="toolbarViewerLeft">
                        <button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11"
                                data-l10n-id="toggle_sidebar">
                            <span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>
                        </button>
                        <div class="toolbarButtonSpacer"></div>
                        <button id="viewFind" class="toolbarButton group hiddenSmallView" title="Find in Document"
                                tabindex="12" data-l10n-id="findbar">
                            <span data-l10n-id="findbar_label">Find</span>
                        </button>
                        <div class="splitToolbarButton">
                            <button class="toolbarButton pageUp" title="Previous Page" id="previous" tabindex="13"
                                    data-l10n-id="previous">
                                <span data-l10n-id="previous_label">Previous</span>
                            </button>
                            <div class="splitToolbarButtonSeparator"></div>
                            <button class="toolbarButton pageDown" title="Next Page" id="next" tabindex="14"
                                    data-l10n-id="next">
                                <span data-l10n-id="next_label">Next</span>
                            </button>
                        </div>
                        <label id="pageNumberLabel" class="toolbarLabel" for="pageNumber" data-l10n-id="page_label">Page: </label>
                        <input type="number" id="pageNumber" class="toolbarField pageNumber" value="1" size="4"
                               min="1"
                               tabindex="15">
                        <span id="numPages" class="toolbarLabel"></span>
                    </div>
                    <div id="toolbarViewerRight">
                        <button id="presentationMode" class="toolbarButton presentationMode hiddenLargeView"
                                title="Switch to Presentation Mode" tabindex="31" data-l10n-id="presentation_mode">
                            <span data-l10n-id="presentation_mode_label">Presentation Mode</span>
                        </button>

                        <button id="openFile" class="toolbarButton openFile hiddenLargeView" title="Open File"
                                tabindex="32" data-l10n-id="open_file">
                            <span data-l10n-id="open_file_label">Open</span>
                        </button>

                        <button id="print" class="toolbarButton print hiddenMediumView" title="Print" tabindex="33"
                                data-l10n-id="print">
                            <span data-l10n-id="print_label">Print</span>
                        </button>

                        <button id="download" class="toolbarButton download hiddenMediumView" title="Download"
                                tabindex="34" data-l10n-id="download">
                            <span data-l10n-id="download_label">Download</span>
                        </button>
                        <!-- <div class="toolbarButtonSpacer"></div> -->
                        <a href="#" id="viewBookmark" class="toolbarButton bookmark hiddenSmallView"
                           title="Current view (copy or open in new window)" tabindex="35" data-l10n-id="bookmark">
                            <span data-l10n-id="bookmark_label">Current View</span>
                        </a>

                        <div class="verticalToolbarSeparator hiddenSmallView"></div>

                        <button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="36"
                                data-l10n-id="tools">
                            <span data-l10n-id="tools_label">Tools</span>
                        </button>
                    </div>
                    <div class="outerCenter">
                        <div class="innerCenter" id="toolbarViewerMiddle">
                            <div class="splitToolbarButton">
                                <button id="zoomOut" class="toolbarButton zoomOut" title="Zoom Out" tabindex="21"
                                        data-l10n-id="zoom_out">
                                    <span data-l10n-id="zoom_out_label">Zoom Out</span>
                                </button>
                                <div class="splitToolbarButtonSeparator"></div>
                                <button id="zoomIn" class="toolbarButton zoomIn" title="Zoom In" tabindex="22"
                                        data-l10n-id="zoom_in">
                                    <span data-l10n-id="zoom_in_label">Zoom In</span>
                                </button>
                            </div>
                  <span id="scaleSelectContainer" class="dropdownToolbarButton">
                     <select id="scaleSelect" title="Zoom" tabindex="23" data-l10n-id="zoom">
                         <option id="pageAutoOption" title="" value="auto" selected="selected"
                                 data-l10n-id="page_scale_auto">Automatic Zoom
                         </option>
                         <option id="pageActualOption" title="" value="page-actual" data-l10n-id="page_scale_actual">
                             Actual Size
                         </option>
                         <option id="pageFitOption" title="" value="page-fit" data-l10n-id="page_scale_fit">Fit Page
                         </option>
                         <option id="pageWidthOption" title="" value="page-width" data-l10n-id="page_scale_width">Full
                             Width
                         </option>
                         <option id="customScaleOption" title="" value="custom"></option>
                         <option title="" value="0.5" data-l10n-id="page_scale_percent"
                                 data-l10n-args='{ "scale": 50 }'>50%
                         </option>
                         <option title="" value="0.75" data-l10n-id="page_scale_percent"
                                 data-l10n-args='{ "scale": 75 }'>75%
                         </option>
                         <option title="" value="1" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 100 }'>
                             100%
                         </option>
                         <option title="" value="1.25" data-l10n-id="page_scale_percent"
                                 data-l10n-args='{ "scale": 125 }'>125%
                         </option>
                         <option title="" value="1.5" data-l10n-id="page_scale_percent"
                                 data-l10n-args='{ "scale": 150 }'>150%
                         </option>
                         <option title="" value="2" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 200 }'>
                             200%
                         </option>
                         <option title="" value="3" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 300 }'>
                             300%
                         </option>
                         <option title="" value="4" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 400 }'>
                             400%
                         </option>
                     </select>
                  </span>
                        </div>
                    </div>
                </div>
                <div id="loadingBar">
                    <div class="progress">
                        <div class="glimmer">
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <menu type="context" id="viewerContextMenu">
            <menuitem id="contextFirstPage" label="First Page"
                      data-l10n-id="first_page"></menuitem>
            <menuitem id="contextLastPage" label="Last Page"
                      data-l10n-id="last_page"></menuitem>
            <menuitem id="contextPageRotateCw" label="Rotate Clockwise"
                      data-l10n-id="page_rotate_cw"></menuitem>
            <menuitem id="contextPageRotateCcw" label="Rotate Counter-Clockwise"
                      data-l10n-id="page_rotate_ccw"></menuitem>
        </menu>

        <div id="viewerContainer" tabindex="0">
            <div id="viewer" class="pdfViewer"></div>
        </div>

        <div id="errorWrapper" hidden='true'>
            <div id="errorMessageLeft">
                <span id="errorMessage"></span>
                <button id="errorShowMore" data-l10n-id="error_more_info">
                    More Information
                </button>
                <button id="errorShowLess" data-l10n-id="error_less_info" hidden='true'>
                    Less Information
                </button>
            </div>
            <div id="errorMessageRight">
                <button id="errorClose" data-l10n-id="error_close">
                    Close
                </button>
            </div>
            <div class="clearBoth"></div>
            <textarea id="errorMoreInfo" hidden='true' readonly="readonly"></textarea>
        </div>
    </div>
    <!-- mainContainer -->

    <div id="overlayContainer" class="hidden">
        <div id="passwordOverlay" class="container hidden">
            <div class="dialog">
                <div class="row">
                    <p id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF file:</p>
                </div>
                <div class="row">
                    <input type="password" id="password" class="toolbarField"/>
                </div>
                <div class="buttonRow">
                    <button id="passwordCancel" class="overlayButton"><span
                            data-l10n-id="password_cancel">Cancel</span>
                    </button>
                    <button id="passwordSubmit" class="overlayButton"><span data-l10n-id="password_ok">OK</span>
                    </button>
                </div>
            </div>
        </div>
        <div id="documentPropertiesOverlay" class="container hidden">
            <div class="dialog">
                <div class="row">
                    <span data-l10n-id="document_properties_file_name">File name:</span>

                    <p id="fileNameField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_file_size">File size:</span>

                    <p id="fileSizeField">-</p>
                </div>
                <div class="separator"></div>
                <div class="row">
                    <span data-l10n-id="document_properties_title">Title:</span>

                    <p id="titleField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_author">Author:</span>

                    <p id="authorField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_subject">Subject:</span>

                    <p id="subjectField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_keywords">Keywords:</span>

                    <p id="keywordsField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_creation_date">Creation Date:</span>

                    <p id="creationDateField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_modification_date">Modification Date:</span>

                    <p id="modificationDateField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_creator">Creator:</span>

                    <p id="creatorField">-</p>
                </div>
                <div class="separator"></div>
                <div class="row">
                    <span data-l10n-id="document_properties_producer">PDF Producer:</span>

                    <p id="producerField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_version">PDF Version:</span>

                    <p id="versionField">-</p>
                </div>
                <div class="row">
                    <span data-l10n-id="document_properties_page_count">Page Count:</span>

                    <p id="pageCountField">-</p>
                </div>
                <div class="buttonRow">
                    <button id="documentPropertiesClose" class="overlayButton"><span
                            data-l10n-id="document_properties_close">Close</span></button>
                </div>
            </div>
        </div>
    </div>
    <!-- overlayContainer -->

</div>
<!-- outerContainer -->
<div id="printContainer"></div>
<div id="mozPrintCallback-shim" hidden>
    <style scoped>
        #mozPrintCallback-shim {
            position: fixed;
            top: 0;
            left: 0;
            height: 100%;
            width: 100%;
            z-index: 9999999;

            display: block;
            text-align: center;
            background-color: rgba(0, 0, 0, 0.5);
        }

        #mozPrintCallback-shim[hidden] {
            display: none;
        }

        @media print {
            #mozPrintCallback-shim {
                display: none;
            }
        }

        #mozPrintCallback-shim .mozPrintCallback-dialog-box {
            display: inline-block;
            margin: -50px auto 0;
            position: relative;
            top: 45%;
            left: 0;
            min-width: 220px;
            max-width: 400px;

            padding: 9px;

            border: 1px solid hsla(0, 0%, 0%, .5);
            border-radius: 2px;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);

            background-color: #474747;

            color: hsl(0, 0%, 85%);
            font-size: 16px;
            line-height: 20px;
        }

        #mozPrintCallback-shim .progress-row {
            clear: both;
            padding: 1em 0;
        }

        #mozPrintCallback-shim progress {
            width: 100%;
        }

        #mozPrintCallback-shim .relative-progress {
            clear: both;
            float: right;
        }

        #mozPrintCallback-shim .progress-actions {
            clear: both;
        }
    </style>
    <div class="mozPrintCallback-dialog-box">
        <!-- TODO: Localise the following strings -->
        Preparing document for printing...
        <div class="progress-row">
            <progress value="0" max="100"></progress>
            <span class="relative-progress">0%</span>
        </div>
        <div class="progress-actions">
            <input type="button" value="Cancel" class="mozPrintCallback-cancel">
        </div>
    </div>
</div>
</body>
</html>